from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    等级精通 = 110
    学习间隔 = 1
    关联技能 = ['影刃']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = "暗影之矛"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [30, 300]
    无色消耗 = 0
    data0 = [0, 465, 514, 561, 607, 654, 703, 750, 797, 847, 892, 940, 987, 1033, 1082, 1129, 1176, 1224, 1272, 1319, 1365, 1412, 1461, 1508, 1555, 1604, 1650, 1697, 1744, 1793, 1840, 1886, 1934, 1981, 2029, 2078, 2122, 2169, 2219, 2267, 2313, 2362, 2408, 2456, 2502, 2550, 2597, 2644, 2691, 2741, 2787, 2835, 2884, 2928, 2976, 3024, 3071, 3119, 3166, 3213, 3259, 3309, 3356, 3401, 3450, 3498, 3545, 3593, 3641, 3686, 3734]
    hit0 = 8
    TP成长 = 0.18
    TP上限 = 1


class 技能2(被动技能):
    名称 = '乌希尔的诅咒'
    所在等级 = 15
    等级上限 = 11
    基础等级 = 1

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.10 + 0.02 * self.等级, 5)


class 技能3(主动技能):
    名称 = "暗影缠袭"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [40, 350]
    无色消耗 = 0
    data0 = [0, 129, 144, 158, 169, 183, 196, 210, 222, 237, 250, 264, 274, 288, 302, 314, 328, 342, 356, 367, 381, 396, 408, 421, 435, 447, 462, 475, 486, 501, 514, 526, 541, 552, 567, 580, 593, 608, 621, 633, 646, 660, 674, 685, 699, 712, 727, 739, 751, 765, 779, 791, 805, 819, 833, 845, 859, 873, 886, 898, 909, 924, 939, 950, 965, 978, 991, 1004, 1016, 1031, 1044]
    hit0 = 6
    data1 = [0, 1263, 1390, 1517, 1646, 1774, 1903, 2030, 2158, 2287, 2416, 2543, 2670, 2798, 2928, 3055, 3184, 3310, 3441, 3568, 3695, 3824, 3954, 4080, 4208, 4335, 4464, 4592, 4720, 4849, 4976, 5107, 5233, 5361, 5489, 5619, 5746, 5874, 6002, 6131, 6257, 6386, 6513, 6641, 6770, 6897, 7027, 7153, 7283, 7411, 7539, 7666, 7795, 7922, 8052, 8178, 8307, 8436, 8564, 8692, 8819, 8948, 9076, 9204, 9331, 9460, 9589, 9719, 9844, 9973, 10100]
    # 受怪物体型大小影响，此处以白沙袋为对象
    hit1 = 3
    TP成长 = 0.1
    TP上限 = 7


# 就是平x,只是受这个被动有额外加成
class 技能4(主动技能):
    名称 = '影刃'
    是否主动 = 0
    所在等级 = 15
    等级上限 = 3
    学习间隔 = 2
    等级精通 = 1
    data0 = [int(i*1.051) for i in [0, 876, 876, 876]]
    hit0 = 1
    CD = 0.5
    TP成长 = 0.10
    TP上限 = 5
    关联技能 = ['影刃']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.20 + 0.05 * self.等级, 5)


class 技能5(主动技能):
    名称 = "暗影漩涡"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [15, 330]
    无色消耗 = 0
    data0 = [0, 2157, 2376, 2594, 2813, 3031, 3250, 3468, 3688, 3906, 4126, 4344, 4562, 4781, 5001, 5220, 5439, 5657, 5875, 6093, 6311, 6532, 6750, 6969, 7187, 7408, 7626, 7844, 8063, 8281, 8500, 8719, 8939, 9157, 9375, 9593, 9813, 10031, 10251, 10469, 10688, 10907, 11125, 11344, 11562, 11782, 12001, 12220, 12437, 12656, 12875, 13093, 13313, 13531, 13750, 13968, 14188, 14408, 14627, 14845, 15064, 15282, 15503, 15719, 15939, 16157, 16376, 16595, 16813, 17033, 17251]
    hit0 = 1
    data1 = [0, 432, 475, 518, 560, 607, 649, 693, 736, 781, 822, 869, 912, 955, 998, 1044, 1086, 1130, 1174, 1217, 1261, 1307, 1348, 1392, 1435, 1481, 1523, 1569, 1612, 1654, 1698, 1743, 1785, 1830, 1873, 1915, 1961, 2005, 2049, 2092, 2138, 2180, 2225, 2268, 2312, 2356, 2400, 2442, 2487, 2529, 2575, 2617, 2662, 2704, 2749, 2793, 2837, 2880, 2923, 2965, 3012, 3054, 3099, 3142, 3188, 3231, 3274, 3317, 3360, 3403, 3451]
    hit1 = 6
    TP成长 = 0.1
    TP上限 = 7


class 技能6(主动技能):
    名称 = "暗影禁锢"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 12
    MP = [60, 390]
    无色消耗 = 0
    data0 = [0, 5930, 6531, 7133, 7736, 8337, 8939, 9542, 10141, 10743, 11345, 11946, 12549, 13152, 13750, 14352, 14956, 15555, 16158, 16762, 17362, 17965, 18565, 19166, 19769, 20371, 20970, 21575, 22176, 22775, 23379, 23982, 24583, 25181, 25786, 26388, 26988, 27593, 28193, 28794, 29397, 30000, 30598, 31201, 31804, 32404, 33005, 33610, 34209, 34810, 35412, 36015, 36616, 37218, 37820, 38422, 39023, 39624, 40226, 40828, 41428, 42032, 42633, 43234, 43837, 44439, 45038, 45642, 46244, 46844, 47445]
    hit0 = 1
    data1 = [0, 3953, 4355, 4754, 5157, 5558, 5958, 6360, 6763, 7161, 7564, 7964, 8365, 8768, 9168, 9569, 9970, 10372, 10771, 11173, 11576, 11975, 12377, 12776, 13179, 13579, 13982, 14382, 14782, 15185, 15585, 15988, 16390, 16787, 17190, 17591, 17993, 18393, 18795, 19196, 19596, 19999, 20398, 20801, 21203, 21602, 22003, 22404, 22806, 23208, 23608, 24008, 24410, 24813, 25215, 25614, 26014, 26415, 26818, 27220, 27619, 28021, 28420, 28824, 29225, 29625, 30027, 30427, 30830, 31228, 31630]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = "灵魂摄取"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [25, 550]
    无色消耗 = 0
    data0 = [0, 786, 864, 947, 1025, 1106, 1183, 1265, 1344, 1424, 1503, 1583, 1664, 1744, 1821, 1902, 1981, 2063, 2142, 2222, 2300, 2383, 2460, 2542, 2620, 2699, 2781, 2860, 2939, 3020, 3098, 3180, 3258, 3338, 3417, 3499, 3579, 3660, 3737, 3818, 3897, 3979, 4057, 4137, 4217, 4298, 4376, 4456, 4534, 4616, 4695, 4776, 4855, 4934, 5013, 5095, 5173, 5255, 5333, 5416, 5494, 5572, 5652, 5732, 5812, 5893, 5972, 6052, 6130, 6210, 6290]
    hit0 = 10
    TP成长 = 0.1
    TP上限 = 7


class 技能8(被动技能):
    名称 = '汲魂之力'
    所在等级 = 25
    等级上限 = 30
    学习间隔 = 2
    等级精通 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.10 + 0.02 * self.等级, 5)


class 技能9(主动技能):
    名称 = "释魂飞弹"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 5
    MP = [65, 450]
    无色消耗 = 0
    data0 = [0, 935, 1083, 1234, 1384, 1531, 1680, 1830, 1979, 2128, 2276, 2426, 2576, 2725, 2872, 3021, 3171, 3320, 3471, 3618, 3767, 3919, 4067, 4216, 4364, 4514, 4662, 4812, 4960, 5109, 5262, 5409, 5558, 5707, 5857, 6004, 6154, 6302, 6451, 6602, 6750, 6900, 7050, 7200, 7347, 7497, 7645, 7793, 7944, 8092, 8241, 8391, 8540, 8688, 8839, 8988, 9135, 9287, 9435, 9583, 9732, 9883, 10032, 10181, 10329, 10477, 10629, 10777, 10926, 11074, 11225]
    # 飞弹个数
    hit0 = 4
    # 每个飞弹消耗灵魂数
    power0 = 2
    TP成长 = 0.14
    TP上限 = 1

    # TP描述是是减少1个灵魂消耗，然后减少14%伤害
    # 实质呢是减少了灵魂消耗，但是只是总伤害减少14%；意思就是原本是消耗2灵魂的4hit，也就是data0*2*4
    # TP后data0变成(1-0.14)*2*data0；也就是1.72倍data0，然后*4hit

    def TP加成(self):
        if self.TP等级 == 0:
            return 1
        else:
            return (self.power0-1) * 2*(0.72 + self.TP成长 * self.TP等级) / self.power0


class 技能10(主动技能):
    名称 = "魅影暗魂斩"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 11
    MP = [70, 400]
    无色消耗 = 0
    # 三觉后该部分不存在
    data0 = [0, 2246, 2475, 2703, 2932, 3157, 3386, 3615, 3842, 4072, 4300, 4528, 4755, 4984, 5213, 5442, 5669, 5898, 6126, 6354, 6582, 6810, 7040, 7269, 7496, 7722, 7951, 8177, 8405, 8633, 8861, 9088, 9319, 9547, 9775, 10003, 10233, 10458, 10687, 10915, 11144, 11373, 11602, 11827, 12055, 12284, 12513, 12741, 12969, 13199, 13425, 13654, 13881, 14110, 14338, 14567, 14795, 15022, 15248, 15478, 15705, 15932, 16160, 16389, 16617, 16844, 17074, 17303, 17529, 17759, 17987]
    hit0 = 0
    data1 = [0, 2399, 2642, 2885, 3130, 3372, 3615, 3857, 4102, 4344, 4588, 4832, 5075, 5317, 5560, 5803, 6047, 6289, 6535, 6780, 7022, 7269, 7511, 7754, 7997, 8240, 8482, 8727, 8970, 9213, 9455, 9700, 9942, 10186, 10428, 10673, 10919, 11162, 11406, 11648, 11892, 12134, 12377, 12620, 12866, 13108, 13351, 13594, 13837, 14079, 14323, 14567, 14810, 15057, 15299, 15541, 15785, 16032, 16274, 16516, 16760, 17004, 17246, 17488, 17732, 17975, 18217, 18464, 18706, 18949, 19196]
    hit1 = 4
    TP成长 = 0.1
    TP上限 = 7


class 技能11(主动技能):
    名称 = "魔镜幻影阵"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [110, 924]
    无色消耗 = 1
    data0 = [0, 1312, 1443, 1578, 1711, 1843, 1976, 2110, 2242, 2377, 2509, 2643, 2776, 2910, 3041, 3177, 3308, 3440, 3575, 3708, 3841, 3973, 4108, 4239, 4376, 4506, 4637, 4775, 4905, 5039, 5173, 5307, 5439, 5573, 5705, 5838, 5973, 6106, 6238, 6373, 6504, 6636, 6770, 6902, 7036, 7170, 7303, 7435, 7570, 7703, 7836, 7969, 8102, 8234, 8369, 8500, 8632, 8767, 8900, 9033, 9167, 9300, 9432, 9568, 9700, 9831, 9965, 10097, 10233, 10367, 10499]
    hit0 = 1
    data1 = [0, 1312, 1447, 1578, 1711, 1845, 1976, 2110, 2246, 2377, 2509, 2644, 2776, 2910, 3043, 3177, 3308, 3443, 3575, 3710, 3842, 3973, 4110, 4241, 4376, 4508, 4643, 4775, 4909, 5041, 5173, 5308, 5441, 5574, 5707, 5841, 5975, 6107, 6239, 6375, 6507, 6640, 6773, 6904, 7038, 7172, 7304, 7439, 7572, 7705, 7838, 7972, 8104, 8239, 8371, 8503, 8638, 8768, 8903, 9035, 9171, 9303, 9437, 9569, 9704, 9836, 9968, 10104, 10237, 10369, 10504]
    hit1 = 12
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.30


class 技能12(主动技能):
    名称 = "释魂狂怒"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [100, 900]
    无色消耗 = 0
    data0 = [0, 23055, 25393, 27734, 30072, 32411, 34747, 37089, 39424, 41767, 44104, 46443, 48782, 51121, 53460, 55800, 58137, 60479, 62816, 65155, 67493, 69834, 72171, 74511, 76849, 79188, 81528, 83866, 86205, 88545, 90883, 93224, 95561, 97900, 100240, 102579, 104918, 107257, 109596, 111935, 114273, 116612, 118950, 121291, 123628, 125969, 128307, 130647, 132984, 135324, 137664, 140004, 142342, 144681, 147020, 149358, 151698, 154036, 156376, 158715, 161054, 163391, 165732, 168068, 170409, 172749, 175087, 177425, 179766, 182102, 184445]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能13(主动技能):
    名称 = "暗影囚杀"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [60, 830]
    无色消耗 = 1
    data0 = [0, 514, 567, 620, 672, 722, 777, 829, 882, 932, 984, 1038, 1090, 1141, 1193, 1249, 1300, 1351, 1404, 1456, 1508, 1560, 1612, 1667, 1718, 1770, 1823, 1876, 1927, 1978, 2032, 2084, 2138, 2189, 2242, 2294, 2347, 2398, 2450, 2502, 2556, 2607, 2660, 2711, 2764, 2816, 2869, 2920, 2971, 3024, 3079, 3132, 3182, 3236, 3288, 3341, 3391, 3444, 3497, 3550, 3602, 3654, 3705, 3758, 3810, 3863, 3914, 3969, 4019, 4072, 4125]
    hit0 = 14
    data1 = [0, 15640, 17227, 18813, 20401, 21989, 23574, 25162, 26747, 28336, 29923, 31510, 33097, 34681, 36269, 37857, 39443, 41030, 42616, 44204, 45792, 47377, 48966, 50551, 52138, 53726, 55313, 56900, 58484, 60074, 61661, 63247, 64835, 66417, 68006, 69593, 71180, 72767, 74353, 75940, 77529, 79115, 80703, 82287, 83875, 85462, 87049, 88638, 90221, 91810, 93395, 94984, 96572, 98155, 99743, 101330, 102918, 104505, 106091, 107678, 109265, 110852, 112441, 114026, 115614, 117198, 118788, 120375, 121958, 123546, 125132]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    MP = [60, 830]
    无色消耗 = 1

    def 装备护石(self, char):
        self.hit0 = 5 + 4 * 2.31
        self.power1 = 1.52


class 技能14(主动技能):
    名称 = "暗影盛宴"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 40
    MP = [120, 2024]
    无色消耗 = 2
    data0 = [0, 2669, 2939, 3211, 3483, 3754, 4025, 4295, 4567, 4838, 5109, 5379, 5650, 5921, 6192, 6461, 6734, 7005, 7275, 7548, 7817, 8088, 8359, 8631, 8901, 9172, 9442, 9714, 9985, 10256, 10526, 10797, 11070, 11340, 11612, 11880, 12153, 12424, 12695, 12965, 13235, 13506, 13779, 14048, 14321, 14589, 14861, 15134, 15404, 15676, 15945, 16217, 16487, 16759, 17030, 17300, 17570, 17842, 18112, 18382, 18653, 18927, 19197, 19469, 19738, 20009, 20280, 20552, 20823, 21092, 21364]
    hit0 = 15
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 30 * 0.5 + 1 * 4.92
        self.CDR *= 0.84


class 技能15(被动技能):
    名称 = '灵魂傀儡'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.055 + 0.015 * self.等级, 5)


class 技能16(主动技能):
    名称 = "末日杀戮"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [900, 7559]
    无色消耗 = 5
    data0 = [0, 1449, 1785, 2122, 2455, 2792, 3130, 3466, 3802, 4137, 4474, 4811, 5145, 5482, 5815, 6153, 6490, 6826, 7163, 7496, 7833, 8173, 8504, 8842, 9177, 9516, 9850, 10187, 10525, 10857, 11194, 11530, 11867, 12203, 12538, 12875, 13209, 13546, 13883, 14218, 14554, 14890, 15228, 15563, 15899, 16237, 16571, 16909, 17244, 17580, 17917]
    hit0 = 1
    data1 = [0, 2908, 3581, 4255, 4932, 5606, 6279, 6953, 7631, 8304, 8977, 9654, 10328, 11002, 11675, 12351, 13025, 13698, 14372, 15048, 15720, 16396, 17073, 17747, 18420, 19093, 19770, 20444, 21118, 21793, 22467, 23142, 23815, 24492, 25165, 25839, 26515, 27189, 27864, 28537, 29213, 29887, 30559, 31233, 31911, 32584, 33258, 33933, 34609, 35283, 35955]
    hit1 = 5
    data2 = [0, 12356, 15221, 18085, 20952, 23815, 26683, 29548, 32411, 35276, 38142, 41007, 43872, 46740, 49604, 52469, 55333, 58197, 61065, 63930, 66795, 69660, 72524, 75391, 78257, 81121, 83988, 86850, 89717, 92581, 95447, 98313, 101178, 104041, 106907, 109775, 112639, 115504, 118369, 121235, 124099, 126963, 129831, 132696, 135560, 138426, 141288, 144157, 147022, 149886, 152753]
    hit2 = 5
    data3 = [0, 25087, 30906, 36721, 42541, 48357, 54176, 59993, 65810, 71628, 77444, 83264, 89082, 94899, 100716, 106533, 112351, 118170, 123986, 129804, 135625, 141440, 147258, 153075, 158892, 164712, 170529, 176345, 182163, 187981, 193799, 199617, 205434, 211252, 217068, 222887, 228704, 234522, 240339, 246158, 251975, 257793, 263611, 269427, 275246, 281062, 286882, 292698, 298516, 304334, 310150]
    hit3 = 1

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * (1.1 if self.等级 >= 6 else 1)


class 技能17(主动技能):
    名称 = "魔影轰杀"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [600, 1840]
    无色消耗 = 1
    data0 = [0, 9815, 10809, 11806, 12801, 13797, 14792, 15790, 16787, 17781, 18776, 19773, 20769, 21764, 22760, 23755, 24751, 25745, 26743, 27741, 28733, 29731, 30726, 31723, 32716, 33715, 34710, 35704, 36700, 37696, 38695, 39687, 40685, 41681, 42677, 43671, 44668, 45663, 46659, 47654, 48651, 49647, 50640, 51638, 52633, 53632, 54624, 55621, 56617, 57613, 58608]
    hit0 = 4
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    形态 = ["打满", "常规", "连按"]

    def 形态变更(self, 形态, char: Character):
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "打满" and '魔影轰杀' in char.护石栏:
            self.hit0 = 4 + 41 * 0.01
            # self.power0 = 1.22
        if 形态 == "常规":
            if '魔影轰杀' in char.护石栏:
                self.hit0 = 4 + 30 * 0.01
            # self.power0 = 1.22
            else:
                形态 = "连按"
        if 形态 == "连按":
            self.hit0 = 4

    def 装备护石(self, char):
        self.power0 = 1.22


class 技能18(主动技能):
    名称 = "死亡献祭"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [1200, 2520]
    无色消耗 = 2
    data0 = [0, 2749, 3024, 3304, 3582, 3863, 4139, 4418, 4699, 4977, 5256, 5533, 5814, 6093, 6372, 6648, 6927, 7206, 7487, 7763, 8044, 8321, 8602, 8878, 9157, 9437, 9716, 9995, 10271, 10551, 10831, 11109, 11387, 11664, 11945, 12225, 12503, 12781, 13061, 13339, 13619, 13894, 14176, 14454, 14733, 15010, 15290, 15569, 15849, 16126, 16406]
    hit0 = 11
    data1 = [0, 31459, 34649, 37839, 41030, 44221, 47415, 50607, 53796, 56988, 60179, 63372, 66565, 69753, 72946, 76135, 79330, 82521, 85710, 88902, 92092, 95287, 98476, 101667, 104860, 108049, 111240, 114434, 117626, 120816, 124008, 127196, 130391, 133582, 136773, 139965, 143154, 146348, 149538, 152731, 155921, 159110, 162305, 165497, 168686, 171877, 175070, 178262, 181453, 184642, 187836]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power1 = 1.46


class 技能19(主动技能):
    名称 = "天罚死光"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 92412, 101787, 111162, 120537, 129912, 139290, 148662, 158039, 167413, 176789, 186163, 195540, 204915, 214289, 223664, 233039, 242416, 251792, 261166, 270541, 279915, 289291, 298667, 308042, 317417, 326792, 336167, 345545, 354919, 364295, 373668, 383044, 392417, 401794, 411170, 420544, 429920, 439293, 448671, 458047, 467421, 476797, 486170, 495546, 504925, 514299, 523674, 533046, 542421, 551799]
    hit0 = 1
    # 灵魂消耗倍率;不加成护石附带的小激光
    灵魂消耗倍率 = 1.15
    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.1
        self.data1 = [int(i* 0.03 * 1.96) for i in self.data0]
        self.power1 = 1
        self.hit1 = 4

    def 等效百分比(self, **argv):
        self.power1 = 1 / self.灵魂消耗倍率
        return super().等效百分比(**argv) * self.灵魂消耗倍率

class 技能20(被动技能):
    名称 = '薄暮'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['影刃', '暗影之矛', '暗影缠袭', '灵魂摄取', '魅影暗魂斩', '暗影禁锢', '暗影漩涡', '魔镜幻影阵', '暗影囚杀',
            '末日杀戮', '魔影轰杀', '死亡献祭', '暗影盛宴', '天罚死光', '天罚之剑', '神罚·灭世裁决', '暗影绽放：死亡荆棘', '冥王降临：净土救赎']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.24 + 0.02 * self.等级, 5)


class 技能21(主动技能):
    名称 = "天罚之剑"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [580, 4500]
    无色消耗 = 5
    data0 = [0, 25658, 28258, 30864, 33466, 36066, 38671, 41273, 43876, 46480, 49083, 51684, 54291, 56890, 59494, 62098, 64701, 67303, 69906, 72509, 75109, 77715, 80317, 82920, 85524, 88127, 90728, 93333, 95934, 98536, 101142, 103743, 106348, 108949, 111552, 114156, 116758, 119361, 121967, 124567, 127169, 129771, 132375, 134978, 137580, 140186, 142785, 145391, 147993, 150595, 153199]
    hit0 = 1
    data1 = [0, 67250, 74074, 80897, 87719, 94540, 101365, 108185, 115011, 121832, 128654, 135478, 142299, 149122, 155946, 162769, 169591, 176414, 183236, 190058, 196884, 203704, 210527, 217351, 224172, 230994, 237816, 244641, 251464, 258285, 265109, 271931, 278753, 285577, 292399, 299222, 306046, 312866, 319689, 326515, 333336, 340158, 346979, 353804, 360626, 367446, 374272, 381094, 387917, 394738, 401560]
    hit1 = 1
    # 灵魂消耗倍率
    灵魂消耗倍率 = 1.15
    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.33

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * self.灵魂消耗倍率

class 技能22(主动技能):
    名称 = "神罚·灭世裁决"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 16771, 20657, 24544, 28434, 32321, 36210, 40098, 43985, 47876, 51764, 55652, 59540, 63427, 67315, 71205, 75094, 78983, 82872, 86758, 90646, 94536, 98422, 102312, 106201, 110091, 113977, 117866, 121754, 125642, 129532, 133419, 137308, 141197, 145083, 148973, 152863, 156750, 160638, 164528, 168414, 172303, 176191, 180078, 183970, 187857, 191744, 195634, 199520, 203410, 207299]
    hit0 = 7
    data1 = [0, 117380, 144597, 171818, 199036, 226254, 253473, 280692, 307911, 335130, 362347, 389567, 416786, 444005, 471223, 498441, 525661, 552880, 580098, 607317, 634534, 661756, 688973, 716192, 743410, 770628, 797849, 825066, 852288, 879504, 906724, 933943, 961160, 988382, 1015598, 1042819, 1070036, 1097255, 1124475, 1151691, 1178912, 1206128, 1233349, 1260568, 1287786, 1315006, 1342221, 1369442, 1396662, 1423880, 1451100]
    hit1 = 1

    # 灵魂消耗倍率
    灵魂消耗倍率 = 1.1

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * self.灵魂消耗倍率

class 技能23(主动技能):
    名称 = "暗影绽放：死亡荆棘"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [773, 6000]
    无色消耗 = 7
    data0 = [0, 63616, 70062, 76512, 82962, 89412, 95861, 102310, 108760, 115210, 121658, 128108, 134558, 141008, 147457, 153906, 160357, 166806, 173254, 179703, 186152, 192602, 199051, 205501, 211951, 218401, 224849, 231299, 237748, 244199, 250647, 257097, 263547, 269997, 276445, 282895, 289344, 295794, 302242, 308691, 315141, 321591, 328040, 334490, 340939, 347389, 353837, 360286, 366736, 373185, 379638]
    hit0 = 1
    data1 = [0, 148434, 163481, 178532, 193580, 208628, 223677, 238724, 253774, 268823, 283871, 298919, 313967, 329018, 344065, 359114, 374163, 389212, 404261, 419309, 434356, 449407, 464453, 479503, 494551, 509601, 524650, 539698, 554747, 569793, 584842, 599891, 614940, 629989, 645038, 660088, 675136, 690184, 705232, 720280, 735330, 750377, 765426, 780476, 795523, 810573, 825621, 840670, 855717, 870767, 885816]
    hit1 = 1


class 技能24(被动技能):
    名称 = '以身载灵'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.18 + 0.02 * self.等级, 5)


class 技能25(主动技能):
    名称 = "冥王降临：净土救赎"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 8054]
    无色消耗 = 15
    data0 = [0, 19472, 23988, 28504, 33019, 37534, 42049, 46565, 51082, 55597, 60113, 64628, 69144, 73658, 78175, 82690, 87206, 91721, 96237, 100752, 105269, 109782, 114299, 118813, 123331, 127845, 132362, 136877, 141392, 145909, 150422, 154939, 159453, 163970, 168483, 173001, 177516, 182030, 186545, 191061, 195576, 200092, 204607, 209125, 213638, 218155, 222670, 227185, 231702, 236216, 240733]
    hit0 = 10
    data1 = [0, 454369, 559733, 665091, 770454, 875817, 981174, 1086540, 1191901, 1297261, 1402622, 1507985, 1613344, 1718708, 1824071, 1929433, 2034791, 2140156, 2245517, 2350878, 2456239, 2561601, 2666960, 2772324, 2877687, 2983046, 3088408, 3193771, 3299129, 3404494, 3509855, 3615214, 3720576, 3825941, 3931300, 4036663, 4142024, 4247384, 4352746, 4458110, 4563468, 4668832, 4774194, 4879553, 4984916, 5090278, 5195639, 5301000, 5406362, 5511728, 5617084]
    hit1 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'dark_templar'
        self.名称 = '极诣·暗殿骑士'
        self.角色 = '鬼剑士(女)'
        self.角色类型 = '输出'
        self.职业 = '暗殿骑士'
        self.武器选项 = ['太刀', '短剑', '巨剑', '钝器']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '手套'
        self.防具类型 = '板甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.65

        super().__init__(equVersion)
